exports.encodeRoutePath = (route) => {
    // 分割路径组件，对每个部分单独编码
    // 分割路径组件，对每个部分单独编码
    const parts = route.split('/').map(part => {
        if (!part) return ''; // 空部分（如开头的空字符串）

        // 对每个部分进行完整的URL编码
        // 使用encodeURIComponent处理大部分字符，但需要保留斜杠"/"
        let encodedPart = encodeURIComponent(part);

        // 由于encodeURIComponent不会编码某些在URL路径中安全的字符
        // 但为了确保一致性，我们可以选择性地编码更多字符
        // 这里额外处理括号、&符号等可能引起问题的字符
        encodedPart = encodedPart
            .replace(/\(/g, '%28')   // 编码左括号
            .replace(/\)/g, '%29')   // 编码右括号
            .replace(/&/g, '%26')    // 编码&符号
            .replace(/\*/g, '%2A')   // 编码*符号
            .replace(/'/g, '%27')    // 编码单引号
            .replace(/!/g, '%21')    // 编码!
            .replace(/#/g, '%23')    // 编码#
            .replace(/\?/g, '%3F');  // 编码?

        return encodedPart;
    });

    // const parts = route.split('/').map(part => {
    //     if (!part) return ''; // 空部分（如开头的空字符串）
    //     // 只对包含非ASCII字符的部分进行编码
    //     return /[^\x00-\x7F]/.test(part) ? encodeURIComponent(part) : part;
    // });

    return parts.join('/');
}